A nivel fundamental, una lista enlazada es una estructura de datos recursiva definida por su propia ausencia o composición. Una lista es o bien vacía (representada como []) o bien consta de un Cabeza que contiene un valor único y una Cola que es a su vez una lista completa.
1. La Definición Recursiva
Al definir la cola como "ella misma una lista", permitimos anidamientos infinitos. Esto se ilustra con la construcción de [ 1 | [ 2 | [ 3 | [ ] ] ] ], donde cada operador de tubería (|) separa el valor inmediato de la estructura restante.
2. Primitivo frente a Abstracción
Las listas primitivas en la máquina virtual de Erlang (BEAM) son estructuras simples. Comportamientos como List.flatten/1 son abstracciones proporcionadas por el módulo List de Elixir. La estructura de datos cruda no "sabe" cómo aplanarse a sí misma; el módulo proporciona la lógica para recorrer las cabezas y colas anidadas.
3. La Analogía de las Muñecas Rusas
Piensa en una lista enlazada como un conjunto de muñecas rusas. La muñeca más externa es la Cabeza. Cuando la abres, encuentras exactamente una cosa: otra muñeca (la Cola). Solo alcanzas el estado Vacío cuando abres la última muñeca más pequeña y no encuentras nada dentro.